﻿#pragma once

#include "App/Window.h"

class CORE_API Gui {
public:
  Gui(const Ref<Window> &window);
  ~Gui();

  static Gui &GetInstance();

  void BeginFrame();
  void FinalizeFrame();

  ImGuiContext *GetContext() const;

  Gui(const Gui &) = delete;
  Gui(Gui &&) noexcept = delete;
  Gui(Gui &) = delete;
  Gui &operator=(Gui &) = delete;
  Gui &operator=(Gui &&) noexcept = delete;

private:
  void Init();

  Ref<Window> m_window{nullptr};
};
